package com.hqd.ch03.v46.beans.converter;

/**
 * 类型转换器注册接口
 */
public interface ConverterRegistry {
    /**
     * 添加类型转换器
     *
     * @param converter 转换器
     */
    void addConverter(Converter<?, ?> converter);

    <S, T> void addConverter(Class<S> sourceType, Class<T> targetType, Converter<? super S, ? extends T> converter);

    /**
     * 删除类型转换器
     *
     * @param sourceType 源类型
     * @param targetType 目标类型
     */
    void removeConvertible(Class<?> sourceType, Class<?> targetType);

    void addConverter(GenericConverter converter);

    void addConverterFactory(ConverterFactory<?, ?> factory);


}
